package bean;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import dao.DAOBusca;
import dao.PesrsitDAO;

import padroes.singleton.Singleton;
import pojo.Curso;
import pojo.Disciplina;
import pojo.Matricula;

@ManagedBean 
@SessionScoped
public class DisciplinaBean {

	
	private Disciplina disciplina = new Disciplina();
	
	private DAOBusca<Disciplina> daodisciplinas = new DAOBusca<Disciplina>();
	private DAOBusca<Curso> daoCurso = new DAOBusca<Curso>();
	public List<Disciplina> lista = new ArrayList<Disciplina>();
	private PesrsitDAO s = Singleton.getInstancia();
	private Long idCurso;
	
	public DisciplinaBean(){
		
	}
	
	
	
	public Disciplina getDisciplina() {
		return disciplina;
	}



	public void setDisciplina(Disciplina disciplina) {
		this.disciplina = disciplina;
	}

	public List<Disciplina> getLista(){
		lista = daodisciplinas.busca(Disciplina.class);
		return lista;
	}
	public void salvar(){
//		if(matricula.getId){
//		HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
		List<Curso> bandas = daoCurso.busca(Curso.class);
		for(Curso c : bandas){
			if(c.getId().equals(idCurso)){
				disciplina.setCurso(c);
			}
		}
			try {
				s.salvar(disciplina);
			} catch (RemoteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			bandas = new ArrayList<Curso>();
			FacesContext ctx = FacesContext.getCurrentInstance();  
			ctx.addMessage(null, new FacesMessage("Disciplina "+ disciplina.getId()+" Inserida com sucesso")); 
//		}else{
//			s.getInstancia().editar(matricula);
//			FacesContext ctx = FacesContext.getCurrentInstance();  
//			ctx.addMessage(null, new FacesMessage("Matricula editada com sucesso")); 
//		
//		}
//		matricula = new Matricula();
		atualizar();
		disciplina = new Disciplina();
	}
	public void atualizar(){
		lista = daodisciplinas.busca(Disciplina.class);
		
	}



	/**
	 * @return the idCurso
	 */
	public Long getIdCurso() {
		return idCurso;
	}



	/**
	 * @param idCurso the idCurso to set
	 */
	public void setIdCurso(Long idCurso) {
		this.idCurso = idCurso;
	}

	
}
